package org.jeecg.modules.yinsheng.command.walletprotocolpay;

import org.jeecg.modules.yinsheng.annotation.NotNull;
import org.jeecg.modules.yinsheng.annotation.Valid;
import org.jeecg.modules.yinsheng.command.base.BaseBizReqCommand;

public class CreateProtocolReqCommand extends BaseBizReqCommand {
	// 业务请求号
	@Valid
	@NotNull(message = "业务请求号不能为空")
	private String requestNo;

	// 收款方银盛商户号
	@Valid
	@NotNull(message = "收款方银盛商户号不能为空")
	private String payeeMerchantNo;

	// 商品名称/订单标题
	@Valid
	@NotNull(message = "商品名称/订单标题不能为空")
	private String orderDesc;

	// 交易金额，单位：元 取值范围：0.01-999999.99
	@Valid
	@NotNull(message = "交易金额不能为空")
	private String amount;

	// 客户标识，需与签约时传值一致
	@Valid
	@NotNull(message = "客户标识不能为空")
	private String userId;

	// 协议号，签约确认接口返回
	@Valid
	@NotNull(message = "协议号不能为空")
	private String protocolNo;

	// CVV码，贷记卡必填
	private String cvv;

	// 有效结束日期，格式为MMYY，贷记卡必填
	private String validTimeEnd;

	// 支付成功结果异步通知地址，为空则不通知 支持多个url，url之间用分隔符“,”分开
	private String notifyUrl;

	// 币种，默认为CNY
	private String currency;

	// 业务代码
	private String busiCode;

	// 交易类型 01-即时交易（默认值） 02-担保交易
	private String tranType;

	/**
	 * 是否分账，未开通分账功能或交易类型为担保交易时此参数无作用 Y-是（需调用分账登记接口进行分账） N-否（直接入账到收款方账户）
	 */
	private String isDivision;

	// 备注，回调时原样返回 综合接口必填，商户未传值时传“协议支付订单”
	private String remark;

	/**
	 * 订单有效期，单位：分钟 此参数需开通白名单配置后生效 默认支付有效时间为7天
	 * 对应综合paymentValidTime，此参数综合接口必填，如果商户没传我们固定传值给综合，此参数开通白名单才会生效
	 */
	private String timeOut;

	/**
	 * 二级商户信息(merName:商户名称,merShortName:商户简称, merAddr:商户地址,telephone:固定电话,merNo:商户编号,
	 * category:类目,mrchntCertId:身份证号)以上参数拼接成字符串
	 */
	private String merSubMerchantInfo;

	// 交易所属省编码
	private String provinceCode;

	// 交易所属市编码
	private String cityCode;

	// 业务扩展参数，JSON格式
	private String extendParams;

	// 分期请求信息
	private String installmentInfo;

	public String getInstallmentInfo() {
		return installmentInfo;
	}

	public void setInstallmentInfo(String installmentInfo) {
		this.installmentInfo = installmentInfo;
	}

	public String getRequestNo() {
		return requestNo;
	}

	public void setRequestNo(String requestNo) {
		this.requestNo = requestNo;
	}

	public String getPayeeMerchantNo() {
		return payeeMerchantNo;
	}

	public void setPayeeMerchantNo(String payeeMerchantNo) {
		this.payeeMerchantNo = payeeMerchantNo;
	}

	public String getOrderDesc() {
		return orderDesc;
	}

	public void setOrderDesc(String orderDesc) {
		this.orderDesc = orderDesc;
	}

	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getProtocolNo() {
		return protocolNo;
	}

	public void setProtocolNo(String protocolNo) {
		this.protocolNo = protocolNo;
	}

	public String getCvv() {
		return cvv;
	}

	public void setCvv(String cvv) {
		this.cvv = cvv;
	}

	public String getValidTimeEnd() {
		return validTimeEnd;
	}

	public void setValidTimeEnd(String validTimeEnd) {
		this.validTimeEnd = validTimeEnd;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public String getBusiCode() {
		return busiCode;
	}

	public void setBusiCode(String busiCode) {
		this.busiCode = busiCode;
	}

	public String getTranType() {
		return tranType;
	}

	public void setTranType(String tranType) {
		this.tranType = tranType;
	}

	public String getIsDivision() {
		return isDivision;
	}

	public void setIsDivision(String isDivision) {
		this.isDivision = isDivision;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getTimeOut() {
		return timeOut;
	}

	public void setTimeOut(String timeOut) {
		this.timeOut = timeOut;
	}

	public String getMerSubMerchantInfo() {
		return merSubMerchantInfo;
	}

	public void setMerSubMerchantInfo(String merSubMerchantInfo) {
		this.merSubMerchantInfo = merSubMerchantInfo;
	}

	public String getProvinceCode() {
		return provinceCode;
	}

	public void setProvinceCode(String provinceCode) {
		this.provinceCode = provinceCode;
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public String getExtendParams() {
		return extendParams;
	}

	public void setExtendParams(String extendParams) {
		this.extendParams = extendParams;
	}

}
